In [68]:
import pandas as pd
from matplotlib import pyplot
import numpy as np
import sklearn

In [92]:
df = pd.read_csv('output_articles_performance.csv',parse_dates=True)
df.head()


Out[92]:
Article Publish Date Traffic
0 how-capicola-became-gabagool-the-italian-new-j... 11/5/15 390403
1 the-obsessively-detailed-map-of-american-liter... 7/20/15 384527
2 this-mystery-photo-haunting-reddit-appears-to-... 6/18/15 196742
3 i-made-a-linguistics-professor-listen-to-a-bli... 6/18/15 177121
4 found-a-gopro-that-went-to-the-edge-of-space-a... 9/14/15 173751

In [42]:
df.describe()


Out[42]:
Traffic
count 958.000000
mean 7520.700418
std 23193.977134
min 192.000000
25% 1384.250000
50% 2738.000000
75% 6109.250000
max 390403.000000

In [43]:
df_middle = df[df["Traffic"] < 6109]

In [44]:
df_middle.describe()


Out[44]:
Traffic
count 718.000000
mean 2322.349582
std 1427.070339
min 192.000000
25% 1192.500000
50% 1903.000000
75% 3348.500000
max 6050.000000

In [45]:
df_middle.append(df["Traffic"] > 1384)


Out[45]:
Article Publish Date Traffic 0 1 2 3 4 5 6 ... 948 949 950 951 952 953 954 955 956 957
240 kuppies-catdogs-and-other-pet-hybrids-that-are... 8/16/15 6050 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
241 heres-the-deal-dirt-is-amazing 10/20/15 5956 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
242 how-a-traditional-punishment-ritual-made-a-des... 9/14/15 5949 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
243 the-brutal-beauty-of-concrete-buildings 7/31/15 5866 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
244 the-large-plasma-tubes-above-the-earth-s-atmos... 6/5/15 5854 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
245 found-the-oldest-message-in-a-bottle-ever-reco... 8/24/15 5808 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
246 the-deck-of-cards-that-made-tarot-a-global-phe... 7/10/15 5780 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
247 the-zombie-bus-scam-that-just-wont-die 11/13/15 5774 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
248 the-hardscrabble-side-of-small-town-america-in... 10/9/15 5751 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
249 found-a-fetus-hiding-inside-a-4yearold-boy 10/12/15 5731 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
250 fake-road-trippin-through-europe-in-a-computer... 7/21/15 5727 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
251 how-detroit-exorcised-devils-night 10/16/15 5716 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
252 exploring-a-decadeold-abandoned-fantasy-game 10/9/15 5659 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
253 lost-and-found-a-drone 7/22/15 5606 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
254 here-comes-santa-that-sexy-shaman 7/17/15 5547 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
255 what-it-actually-means-to-read-the-riot-act-to... 7/31/15 5541 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
256 from-above-solar-farms-look-like-tetris-pieces... 8/6/15 5540 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
257 found-mysterious-photos-of-beautiful-women 8/3/15 5523 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
258 heres-what-goes-on-inside-a-forest-when-a-mass... 9/15/15 5489 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
259 the-bizarre-tale-of-isis-book-club 8/4/15 5476 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
260 fleeting-wonders-super-blood-moon 9/24/15 5471 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
261 polywater-the-soviet-scientific-secret-that-ma... 9/21/15 5466 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
262 the-surprising-truth-about-pirates-and-parrots 11/19/15 5464 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
263 found-the-mysterious-shigir-idol-may-be-11000-... 8/31/15 5454 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
264 step-up-2-nature-8-staircases-that-make-nature... 7/17/15 5412 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
265 the-arizona-trash-castle-with-a-heartbreaking-... 9/18/15 5385 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
266 photos-of-european-churches-left-in-holy-ruin 9/25/15 5374 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
267 we-asked-an-ornithologist-to-factcheck-angry-b... 11/25/15 5359 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
268 take-a-grand-tour-of-the-worlds-great-tattoos 9/17/15 5337 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
269 found-a-fake-historical-plaque-on-trump-golf-c... 11/25/15 5335 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
929 lost-a-12footlong-pencil 11/18/15 569 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
930 what-miracles-have-you-seen 9/14/15 566 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
931 places-you-can-no-longer-go-oregon-state-capitol 9/24/15 557 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
932 100-wonders-an-island-you-dont-want-to-visit 8/20/15 553 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
933 your-ticket-to-the-1893-columbian-exposition 7/13/15 547 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
934 fleeting-wonders-playtime-with-a-baby-albino-w... 11/2/15 536 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
935 smell-you-later-donald-trump-how-roses-get-the... 6/16/15 523 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
936 how-to-create-nanoart-masterpieces-by-manipula... 9/2/15 515 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
937 100-wonders-the-classiest-saint-relic-in-europe 6/25/15 501 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
938 the-sad-sex-lives-of-suburban-frogs 9/9/15 495 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
939 a-lawn-days-journey-from-scythes-and-donkeys-t... 9/8/15 494 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
940 fleeting-wonders-600-chris-denorfia-bobbleheads 11/16/15 492 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
941 found-the-worlds-tiniest-snail 9/29/15 488 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
942 fleeting-wonder-witness-a-rare-waterspout-off-... 9/1/15 488 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
943 the-australian-school-where-students-live-hund... 9/9/15 483 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
944 fleeting-wonders-mumbais-works-of-art-on-wheels 9/9/15 477 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
945 at-harvard-forest-cameras-track-your-every-move 6/15/15 467 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
946 volvos_wearing_tutus 6/2/15 441 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
947 fleeting-wonders-theres-still-time-to-see-the-... 8/13/15 439 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
948 fleeting-wonders-a-multicolored-smile-in-the-sky 10/27/15 438 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
949 places-you-can-no-longer-go-bethlehem-steel-works 9/17/15 438 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
950 these-retirees-enjoy-long-walks-on-the-beach-i... 10/29/15 435 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
951 welcome-to-atlas-obscura-s-100-wonders 6/4/15 424 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
952 a-twitter-that-really-tweets-and-other-uses-fo... 8/14/15 421 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
953 more-severe-storms-are-throwing-off-bird-migra... 11/24/15 388 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
954 fleeting-wonders-name-the-newest-moth 10/19/15 300 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
955 obscura-day-photo-contest 6/9/15 200 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
956 found-a-recording-of-mlk-testing-out-i-have-a-... 8/12/15 196 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
957 relive-the-glory-of-obscura-day-with-this-podc... 8/17/15 192 NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Traffic NaN NaN NaN 1 1 1 1 1 1 1 ... 0 0 0 0 0 0 0 0 0 0

719 rows × 961 columns


In [46]:
df_middle.describe()


Out[46]:
Traffic
count 718.000000
mean 2322.349582
std 1427.070339
min 192.000000
25% 1192.500000
50% 1903.000000
75% 3348.500000
max 6050.000000

In [47]:
df_middle.reset_index(inplace=True)

In [48]:
del df_middle["index"]

In [49]:
df_middle.sort_values("Publish Date")


Out[49]:
Article Publish Date Traffic
615 they-see-me-rollinbecause-im-wearing-a-suit-wi... 10/1/15 919
506 fleeting-wonders-watch-live-as-a-million-wilde... 10/1/15 1287
671 meet-the-international-ice-patrol-stopping-ice... 10/1/15 697
575 100-wonders-whispering-gallery 10/1/15 1079
212 uncloaking-the-origins-of-collegiate-secret-so... 10/1/15 2941
308 places-you-can-no-longer-go-old-man-of-the-mou... 10/1/15 2134
150 wwii-to-syria-how-seed-vaults-weather-wars 10/12/15 3585
344 mariners-today-still-use-a-math-genius-1802-na... 10/12/15 1947
516 the-map-youll-see-in-chinese-classrooms 10/12/15 1256
484 fleeting-wonders-27581-pumpkins-colonize-a-tow... 10/12/15 1352
9 found-a-fetus-hiding-inside-a-4yearold-boy 10/12/15 5731
93 how-green-bay-wisconsin-became-the-toilet-pape... 10/12/15 4284
351 the-daredevil-gal-pals-who-conquered-the-sky 10/12/15 1936
381 fleeting-wonders-writing-a-novel-in-the-most-t... 10/13/15 1804
258 walldogs-and-the-disappearing-art-of-painting-... 10/13/15 2567
257 the-turkish-deep-state-what-life-is-like-when-... 10/13/15 2581
149 the-true-story-of-dr-voronoffs-plan-to-use-mon... 10/13/15 3600
134 striking-aerial-photographs-of-tiny-humans 10/14/15 3814
411 when-the-western-world-ran-on-guano 10/14/15 1682
50 why-midcentury-lawyers-spent-12-years-arguing-... 10/14/15 4984
240 found-1958-video-in-a-psychiatric-hospitals-ti... 10/14/15 2729
594 world-wingsuit-league-china-grand-prix-2015 10/14/15 1005
201 how-marshall-islanders-navigated-the-sea-using... 10/14/15 3039
249 fleeting-wonders-a-football-stadium-turns-into... 10/14/15 2635
303 fleeting-wonders-rent-an-airbnb-with-6-million... 10/15/15 2180
247 how-the-army-handled-cultural-sensitivity-trai... 10/15/15 2671
410 these-fairytale-trees-only-grow-at-incredible-... 10/15/15 1683
402 places-you-can-no-longer-go-the-navigation-trees 10/15/15 1693
399 found-the-earliest-known-draft-of-the-king-jam... 10/15/15 1704
580 the-selfappointed-king-of-victorian-rat-catchers 10/15/15 1052
... ... ... ...
224 the-rise-and-fall-of-the-cash-railway 9/29/15 2819
470 before-talking-to-a-beaver-in-tierra-del-fuego... 9/29/15 1417
604 fleeting-wonders-a-python-in-a-pile-of-jeans 9/29/15 962
701 found-the-worlds-tiniest-snail 9/29/15 488
472 100-wonders-the-last-incan-bridge 9/3/15 1416
340 places-you-can-no-longer-go-smithville-bicycle... 9/3/15 1966
274 breathing-while-saxophone-playing-should-be-an... 9/3/15 2431
92 how-one-runestone-suddenly-reappeared-after-be... 9/3/15 4323
641 fleeting-wonders-a-chicken-that-crossed-the-ro... 9/3/15 821
333 soothe-yourself-by-watching-tiny-meals-being-c... 9/3/15 2014
552 found-26-trillion-trees 9/3/15 1135
407 finally-you-can-sleep-in-a-sandcastle 9/30/15 1684
98 the-crappy-plumbers-bloomin-awful-florists-and... 9/30/15 4191
38 americas-boom-in-abandoned-vacant-schools 9/4/15 5099
299 the-new-york-prison-that-doubled-as-a-clubhous... 9/4/15 2193
180 photos-of-majestic-theaters-turned-to-ruin 9/4/15 3347
116 found-a-very-special-sarcophagus 9/4/15 3994
135 see-imagined-artifacts-from-the-japanese-space... 9/4/15 3813
628 roadtripping-through-illinois-on-route-66 9/7/15 861
273 found-a-supersized-stonehenge 9/8/15 2439
151 the-aurora-hunters-who-spend-all-year-chasing-... 9/8/15 3574
658 howard-blackburn-wasnt-the-first-to-sail-acros... 9/8/15 764
501 fleeting-wonders-the-hottest-september-8th-on-... 9/8/15 1299
699 a-lawn-days-journey-from-scythes-and-donkeys-t... 9/8/15 494
617 objects-of-intrigue-teaching-machines-of-the-2... 9/8/15 912
698 the-sad-sex-lives-of-suburban-frogs 9/9/15 495
703 the-australian-school-where-students-live-hund... 9/9/15 483
704 fleeting-wonders-mumbais-works-of-art-on-wheels 9/9/15 477
61 how-two-18th-century-lady-pirates-became-bffs-... 9/9/15 4721
162 the-bear-who-fought-for-the-polish-army 9/9/15 3457

718 rows × 3 columns


In [50]:
df_middle.describe()


Out[50]:
Traffic
count 718.000000
mean 2322.349582
std 1427.070339
min 192.000000
25% 1192.500000
50% 1903.000000
75% 3348.500000
max 6050.000000

In [55]:
df_middle["Publish Date"] = pd.to_datetime(df["Publish Date"])


/Users/Mike/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:1: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  if __name__ == '__main__':

In [59]:
df_middle.columns


Out[59]:
Index([u'Article', u'Publish Date', u'Traffic'], dtype='object')

In [61]:
df_middle["Publish Date"].dtype


Out[61]:
dtype('<M8[ns]')

In [63]:
df_middle.set_index("Publish Date", inplace=True)

In [64]:
df_middle.resample('W',how='sum')


Out[64]:
Traffic
Publish Date
2015-06-07 34480
2015-06-14 39867
2015-06-21 58009
2015-06-28 65142
2015-07-05 43231
2015-07-12 53757
2015-07-19 51342
2015-07-26 66336
2015-08-02 58850
2015-08-09 58241
2015-08-16 62434
2015-08-23 70070
2015-08-30 47990
2015-09-06 64448
2015-09-13 41563
2015-09-20 56877
2015-09-27 83314
2015-10-04 103222
2015-10-11 70735
2015-10-18 63117
2015-10-25 97575
2015-11-01 77309
2015-11-08 84397
2015-11-15 49933
2015-11-22 66974
2015-11-29 44173
2015-12-06 54061

In [65]:
df_middle.pyplot()


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-65-649f2a44c8b1> in <module>()
----> 1 df_middle.pyplot()

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/generic.pyc in __getattr__(self, name)
   2358                 return self[name]
   2359             raise AttributeError("'%s' object has no attribute '%s'" %
-> 2360                                  (type(self).__name__, name))
   2361 
   2362     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'pyplot'

In [66]:
%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [70]:
pyplot.figure()


Out[70]:
<matplotlib.figure.Figure at 0x10b70fa90>
<matplotlib.figure.Figure at 0x10b70fa90>

In [72]:
x = df_middle["index"]


---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-72-ff57fd639929> in <module>()
----> 1 x = df_middle["index"]

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in __getitem__(self, key)
   1967             return self._getitem_multilevel(key)
   1968         else:
-> 1969             return self._getitem_column(key)
   1970 
   1971     def _getitem_column(self, key):

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in _getitem_column(self, key)
   1974         # get column
   1975         if self.columns.is_unique:
-> 1976             return self._get_item_cache(key)
   1977 
   1978         # duplicate columns & possible reduce dimensionality

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/generic.pyc in _get_item_cache(self, item)
   1089         res = cache.get(item)
   1090         if res is None:
-> 1091             values = self._data.get(item)
   1092             res = self._box_item_values(item, values)
   1093             cache[item] = res

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/internals.pyc in get(self, item, fastpath)
   3209 
   3210             if not isnull(item):
-> 3211                 loc = self.items.get_loc(item)
   3212             else:
   3213                 indexer = np.arange(len(self.items))[isnull(self.items)]

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/index.pyc in get_loc(self, key, method, tolerance)
   1757                                  'backfill or nearest lookups')
   1758             key = _values_from_object(key)
-> 1759             return self._engine.get_loc(key)
   1760 
   1761         indexer = self.get_indexer([key], method=method,

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3979)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3843)()

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12265)()

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12216)()

KeyError: 'index'

In [76]:
df_middle.resample('W',how='sum').plot()


Out[76]:
<matplotlib.axes._subplots.AxesSubplot at 0x10b68d1d0>

In [78]:
df_middle.loc[:,"Articles"] = 1


/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/indexing.py:266: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self.obj[key] = _infer_fill_value(value)
/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/indexing.py:426: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self.obj[item] = s

In [82]:
df_middle.resample('W',how='sum').plot.scatter("Articles","Traffic")


Out[82]:
<matplotlib.axes._subplots.AxesSubplot at 0x10ba54b50>

In [84]:
df_resampled = df_middle.resample('W', how='sum')

In [86]:
df_resampled.loc[:,"Average"] = df_resampled['Traffic'] / df_resampled['Articles']

In [88]:
df_resampled.plot.scatter("Articles","Average")


Out[88]:
<matplotlib.axes._subplots.AxesSubplot at 0x10b810b10>

Now let's check out what the same analysis looks like for the entire dataset, rather than just the middle 50%


In [98]:
df["Publish Date"] = pd.to_datetime(df["Publish Date"])
df.set_index(["Publish Date"], inplace=True)


---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-98-8533184113f7> in <module>()
----> 1 df["Publish Date"] = pd.to_datetime(df["Publish Date"])
      2 df.set_index(["Publish Date"], inplace=True)
      3 df.loc[:"Articles"] = 1

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in __getitem__(self, key)
   1967             return self._getitem_multilevel(key)
   1968         else:
-> 1969             return self._getitem_column(key)
   1970 
   1971     def _getitem_column(self, key):

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in _getitem_column(self, key)
   1974         # get column
   1975         if self.columns.is_unique:
-> 1976             return self._get_item_cache(key)
   1977 
   1978         # duplicate columns & possible reduce dimensionality

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/generic.pyc in _get_item_cache(self, item)
   1089         res = cache.get(item)
   1090         if res is None:
-> 1091             values = self._data.get(item)
   1092             res = self._box_item_values(item, values)
   1093             cache[item] = res

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/internals.pyc in get(self, item, fastpath)
   3209 
   3210             if not isnull(item):
-> 3211                 loc = self.items.get_loc(item)
   3212             else:
   3213                 indexer = np.arange(len(self.items))[isnull(self.items)]

/Users/Mike/anaconda/lib/python2.7/site-packages/pandas/core/index.pyc in get_loc(self, key, method, tolerance)
   1757                                  'backfill or nearest lookups')
   1758             key = _values_from_object(key)
-> 1759             return self._engine.get_loc(key)
   1760 
   1761         indexer = self.get_indexer([key], method=method,

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3979)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3843)()

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12265)()

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12216)()

KeyError: 'Publish Date'

In [102]:
df.loc[:,"Articles"] = 1

In [103]:
df_resampled_all = df.resample('W',how = 'sum')

In [105]:
df_resampled_all


Out[105]:
Traffic Articles
Publish Date
2015-06-07 128120 22
2015-06-14 124371 24
2015-06-21 514123 31
2015-06-28 245109 34
2015-07-05 153060 29
2015-07-12 171442 32
2015-07-19 166992 31
2015-07-26 578405 32
2015-08-02 197164 33
2015-08-09 188878 32
2015-08-16 199710 37
2015-08-23 255474 40
2015-08-30 130083 36
2015-09-06 225356 37
2015-09-13 106854 32
2015-09-20 405126 39
2015-09-27 325534 39
2015-10-04 589284 38
2015-10-11 174014 41
2015-10-18 165069 38
2015-10-25 360794 48
2015-11-01 319004 51
2015-11-08 686940 41
2015-11-15 159665 41
2015-11-22 195339 41
2015-11-29 131409 24
2015-12-06 307512 35

In [106]:
x = df_resampled_all['Articles']
y = df_resampled_all['Traffic'] / df_resampled_all['Articles']

In [107]:
pyplot.scatter(x,y)


Out[107]:
<matplotlib.collections.PathCollection at 0x10be67910>

In [108]:
y1 = df_resampled_all['Traffic']

In [109]:
pyplot.scatter(x,y1)


Out[109]:
<matplotlib.collections.PathCollection at 0x10bfc5690>

In [117]:
df.sort_values(['Traffic'])


Out[117]:
Article Traffic Articles
Publish Date
2015-08-17 relive-the-glory-of-obscura-day-with-this-podc... 192 1
2015-08-12 found-a-recording-of-mlk-testing-out-i-have-a-... 196 1
2015-06-09 obscura-day-photo-contest 200 1
2015-10-19 fleeting-wonders-name-the-newest-moth 300 1
2015-11-24 more-severe-storms-are-throwing-off-bird-migra... 388 1
2015-08-14 a-twitter-that-really-tweets-and-other-uses-fo... 421 1
2015-06-04 welcome-to-atlas-obscura-s-100-wonders 424 1
2015-10-29 these-retirees-enjoy-long-walks-on-the-beach-i... 435 1
2015-10-27 fleeting-wonders-a-multicolored-smile-in-the-sky 438 1
2015-09-17 places-you-can-no-longer-go-bethlehem-steel-works 438 1
2015-08-13 fleeting-wonders-theres-still-time-to-see-the-... 439 1
2015-06-02 volvos_wearing_tutus 441 1
2015-06-15 at-harvard-forest-cameras-track-your-every-move 467 1
2015-09-09 fleeting-wonders-mumbais-works-of-art-on-wheels 477 1
2015-09-09 the-australian-school-where-students-live-hund... 483 1
2015-09-01 fleeting-wonder-witness-a-rare-waterspout-off-... 488 1
2015-09-29 found-the-worlds-tiniest-snail 488 1
2015-11-16 fleeting-wonders-600-chris-denorfia-bobbleheads 492 1
2015-09-08 a-lawn-days-journey-from-scythes-and-donkeys-t... 494 1
2015-09-09 the-sad-sex-lives-of-suburban-frogs 495 1
2015-06-25 100-wonders-the-classiest-saint-relic-in-europe 501 1
2015-09-02 how-to-create-nanoart-masterpieces-by-manipula... 515 1
2015-06-16 smell-you-later-donald-trump-how-roses-get-the... 523 1
2015-11-02 fleeting-wonders-playtime-with-a-baby-albino-w... 536 1
2015-07-13 your-ticket-to-the-1893-columbian-exposition 547 1
2015-08-20 100-wonders-an-island-you-dont-want-to-visit 553 1
2015-09-24 places-you-can-no-longer-go-oregon-state-capitol 557 1
2015-09-14 what-miracles-have-you-seen 566 1
2015-11-18 lost-a-12footlong-pencil 569 1
2015-08-10 how-the-jeans-capital-of-the-world-moved-from-... 572 1
... ... ... ...
2015-08-07 resurrecting-the-original-road-trip-on-america... 33303 1
2015-11-17 the-history-of-hazardous-clothing-in-pictures 34090 1
2015-09-28 the-hidden-bolts-that-drive-manhattans-infrast... 35050 1
2015-07-16 haunting-photos-of-an-abandoned-air-force-base 35152 1
2015-08-10 the-container-ship-tourism-industry 35586 1
2015-09-25 how-miracle-max-nearly-shut-down-the-princess-... 37786 1
2015-10-02 theres-a-man-scattering-very-funny-fake-books-... 38441 1
2015-07-27 brazil-is-a-video-game-alternate-universe-wher... 38646 1
2015-09-22 object-of-intrigue-the-ladder-at-the-center-of... 40197 1
2015-07-22 the-great-escape-job-board 42474 1
2015-10-02 how-advertising-invented-8-phrases-we-use-ever... 48132 1
2015-10-19 how-denver-airport-became-the-international-hu... 48272 1
2015-10-22 why-it-was-faster-to-build-subways-in-1900 49892 1
2015-06-30 photographing-the-real-bodies-of-incorrupt-saints 52018 1
2015-06-01 islands-of-the-undesirables-roosevelt-island-b... 52031 1
2015-11-06 the-early-spy-manual-that-turned-bad-middle-ma... 52685 1
2015-11-02 found-a-2250-foot-long-crack-in-wyoming 55003 1
2015-10-29 six-banned-candies-you-wont-be-getting-on-hall... 60282 1
2015-09-01 the-alternate-universe-of-soviet-arcade-games 60479 1
2015-10-02 found-a-woolly-mammoth-in-a-michigan-farmers-f... 62065 1
2015-08-17 everything-youve-heard-about-chastity-belts-is... 69747 1
2015-06-26 the-ao-exit-interview-12-years-in-the-blue-man... 72898 1
2015-09-17 why-cant-we-get-rid-of-the-7day-week 109589 1
2015-12-03 cs-lewis-greatest-fiction-convincing-american-... 162523 1
2015-09-30 behold-the-ultimate-crowdsourced-map-of-punny-... 168284 1
2015-09-14 found-a-gopro-that-went-to-the-edge-of-space-a... 173751 1
2015-06-18 i-made-a-linguistics-professor-listen-to-a-bli... 177121 1
2015-06-18 this-mystery-photo-haunting-reddit-appears-to-... 196742 1
2015-07-20 the-obsessively-detailed-map-of-american-liter... 384527 1
2015-11-05 how-capicola-became-gabagool-the-italian-new-j... 390403 1

958 rows × 3 columns


In [ ]: